package com.example.task;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import com.example.entity.AskersEntity;
import com.example.entity.UsersEntity;
import com.example.service.AskersService;
import com.example.service.UsersService;

/**
 * 定时任务：同步咨询师
 * @author AutoAllotZiXunTask
 *
 */
@Component
@EnableScheduling
public class SynchronousConsultantTask {

	@Autowired
	public AskersService askersService;
	@Autowired
	public UsersService usersService;
	
	@Scheduled(cron = "0 */10 * * * ?")
	public void SynchronousConsultantByCron() {
		System.out.println("----------------开始同步咨询师----------------");
		//获取用户表里的咨询师
		List<UsersEntity> userList = usersService.getUserConsultant();
		
		//获取咨询师表里的咨询师
		List<AskersEntity> askerList = askersService.getTBConsultant();
		//进行判定，用户表里多添加，咨询表里多删除
		String userName = null;	//用户表里的咨询师姓名
		String askerName = null;	//咨询师表里的咨询师姓名
		int cfcs=0;	//重复次数
		int cs=0;
		//对咨询师表里的数据进行判断在用户表中是否存在(删除)
		System.out.println("---------进行判定删除");
		for (int i = 0; i < askerList.size(); i++) {	//循环咨询师表里查出的咨询师
			askerName=askerList.get(i).getAskerName();	//获取改下标下咨询师的姓名
			for (int j = 0; j < userList.size(); j++) {	//循环用户表里查出的咨询师
				userName=userList.get(j).getLoginname();	//获取改下标下咨询师的姓名
				if(askerName.equals(userName)) {	//进行判断这俩是否一样
					cfcs++;	//一样就将cfcs(重复次数)加一
				}
			}
			if(cfcs==0) {	//判断是否重复
				askersService.delTBConsultant(askerList.get(i).getAskerId());	//没有重复将咨询师表里多余的删除
				System.out.println("----"+askerList.get(i).getAskerName()+":删除成功");
			}
			userName = null;	//回复初始值
			askerName = null;	//回复初始值
			cfcs=0;	//回复初始值
		}
		if(cs==0) {
			System.out.println("----没有不存在的咨询师");
		}else {
			System.out.println("----删除了"+cs+"位咨询师");
			cs=0;
		}
		//对用户表里查出的咨询师进行判断是否已同步(添加)
		System.out.println("---------进行判定添加");
		for (int i = 0; i < userList.size(); i++) {	//循环用户表里查出的咨询师
			userName=userList.get(i).getLoginname();	//获取改下标下咨询师的姓名
			for (int j = 0; j < askerList.size(); j++) {	//循环咨询师表里查出的咨询师
				askerName=askerList.get(j).getAskerName();	//获取改下标下咨询师的姓名
				if(userName.equals(askerName)) {	//进行判断这俩是否一样
					cfcs++;	//一样就将cfcs(重复次数)加一
				}
			}
			if(cfcs==0) {	//判断是否重复
				askersService.addTBConsultant(userList.get(i));	//没有重复往咨询师表里添加
				System.out.println("----"+userList.get(i).getLoginname()+":添加成功");
				cs++;
			}
			userName = null;	//回复初始值
			askerName = null;	//回复初始值
			cfcs=0;	//回复初始值
		}
		if(cs==0) {
			System.out.println("----没有新的咨询师");
		}else {
			System.out.println("----新增了"+cs+"位咨询师");
			cs=0;
		}
		System.out.println("------------同步结束------------");
		
	}
}
